home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgramD2.iso / Borland / Borland C++ V5.02 / STDLIB.PAK / REMOVE.CPP < prev    next >
Text File  |  1997-05-06  |  1KB  |  49 lines

  1.  #include <algorithm>
  2.  #include <vector>
  3.  #include <iterator>
  4.  
  5.  using namespace std;
  6.  
  7.  bool isEven(int i)
  8.  {
  9.      return !(i%2);
  10.  }
  11.  
  12.  int main ()
  13.  {
  14.    int arr[10] = {1,2,3,4,5,6,7,8,9,10};
  15.    vector<int> v(arr+0, arr+10);
  16.  
  17.    copy(v.begin(),v.end(),ostream_iterator<int>(cout," "));
  18.    cout << endl << endl;
  19.    //
  20.    // Remove the 7.
  21.    //
  22.    vector<int>::iterator result = remove(v.begin(), v.end(), 7);
  23.    //
  24.    // Delete dangling elements from the vector.
  25.    //
  26.    v.erase(result, v.end());
  27.  
  28.    copy(v.begin(),v.end(),ostream_iterator<int>(cout," "));
  29.    cout << endl << endl;
  30.    //
  31.    // Remove all even elements.
  32.    //
  33.    result = remove_if(v.begin(), v.end(), ptr_fun(isEven));
  34.    //
  35.    // Delete dangling elements.
  36.    //
  37.    v.erase(result, v.end());
  38.  
  39.    copy(v.begin(),v.end(),ostream_iterator<int>(cout," "));
  40.    cout << endl << endl;
  41.    //
  42.    // Now remove all 3s on output.
  43.    //
  44.    remove_copy(v.begin(), v.end(), ostream_iterator<int>(cout," "), 3);
  45.    cout << endl << endl;
  46.  
  47.    return 0;
  48.  }
  49.